home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / rexx / cmdtoall.raz < prev    next >
Text File  |  1995-02-07  |  2KB  |  60 lines

  1. /** $VER: CmdToAll.raz 1.1 (7.2.95)
  2.  **
  3.  ** Pour chaque tâche d'édition de la même tâche maîtresse, appelle
  4.  ** une ou plusieurs commandes.
  5.  ** Les commandes doivent être séparées par des point-virgules.
  6.  **
  7.  ** Exemple : on veut sauvegarder ou iconifier le contenu de toutes
  8.  ** les fenêtres :
  9.  **
  10.  ** AZur:Rexx/CmdToAll.raz Win2File SAME MODIFIED
  11.  ** AZur:Rexx/CmdToAll.raz Iconify ON
  12.  **/
  13.  
  14. OPTIONS RESULTS
  15. SIGNAL ON BREAK_C
  16.  
  17. /*------ Place les commandes dans un tableau de variables ------*/
  18.  
  19. PARSE ARG parameters    /* met la ligne d'arguments du script dans une variable */
  20.  
  21. numcmd = 0
  22. cmd = ''
  23. DO FOREVER
  24.     PARSE VAR parameters cmd ';' parameters    /* on prend chaque commande une par une dans 'cmd' */
  25.     IF (cmd == '') THEN LEAVE                  /* et on remet le reste dans 'parameters' */
  26.     numcmd = numcmd + 1
  27.     cmd_to_execute.numcmd = cmd
  28. END
  29.  
  30. /*------ Liste des ports d'une même tâche mère ------*/
  31.  
  32. GetPortList
  33. portlist = RESULT
  34. IF (portlist == '') THEN EXIT
  35.  
  36. /*------ Mémorise les ports des tâches d'édition  ------*/
  37.  
  38. windownum = 0
  39. win = 1
  40. DO FOREVER
  41.     PARSE VAR portlist portname.win ',' portlist
  42.     IF (portname.win == '') THEN BREAK
  43.     portname.win = STRIP(portname.win,,'"')
  44.     win = win + 1
  45.     windownum = windownum + 1
  46. END
  47.  
  48. /*------- Parcoure les lignes du texte et exécute les commandes --------*/
  49.  
  50. DO win = 1 TO windownum
  51.     ADDRESS VALUE portname.win
  52.     DO num = 1 TO numcmd;
  53.         cmd_to_execute.num;
  54.         if (RC = 20) THEN EXIT
  55.     END
  56. END
  57.  
  58. EXIT
  59. BREAK_C:
  60.